// arena.cpp : Defines the class behaviors for the application.
//

#include "stdafx.h"
#include "arena.h"
#include "arenaDlg.h"
#include "game.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CArenaApp

BEGIN_MESSAGE_MAP(CArenaApp, CWinApp)
	//{{AFX_MSG_MAP(CArenaApp)
	// NOTE - the ClassWizard will add and remove mapping macros here.
	//    DO NOT EDIT what you see in these blocks of generated code!
	//}}AFX_MSG
	ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CArenaApp construction

CArenaApp::CArenaApp()
{
	// TODO: add construction code here,
	// Place all significant initialization in InitInstance
}

/////////////////////////////////////////////////////////////////////////////
// The one and only CArenaApp object

CArenaApp theApp;
extern gameParam * GameParam;

/////////////////////////////////////////////////////////////////////////////
// CArenaApp initialization

BOOL CArenaApp::InitInstance()
{
	AfxEnableControlContainer();

	// Standard initialization
	// If you are not using these features and wish to reduce the size
	//  of your final executable, you should remove from the following
	//  the specific initialization routines you do not need.
	

	HANDLE hMutex;
	hMutex = ::CreateMutex(NULL, TRUE, "arenaMutex");
	switch(::GetLastError())
	{
	case ERROR_SUCCESS:
		// Mutex created successfully. There is no instance running
		break;

	case ERROR_ALREADY_EXISTS:
		// Mutex already exists so there is a running instance of our app.
		return FALSE;
		// Failed to create mutex by unknown reason
	}

	char chPath[200]; 
	GetModuleFileName(NULL,chPath,199);  
	CString currentAddress;	 
	currentAddress.Format(chPath);
	int nPos = currentAddress.ReverseFind('\\');
	GameParam->dir = currentAddress.Left(nPos);

	CArenaDlg dlg;
	m_pMainWnd = &dlg;
	int nResponse = dlg.DoModal();

	if (nResponse == IDOK)
	{
		// TODO: Place code here to handle when the dialog is
		//  dismissed with OK
	}
	else if (nResponse == IDCANCEL)
	{
		// TODO: Place code here to handle when the dialog is
		//  dismissed with Cancel
	}

	// Since the dialog has been closed, return FALSE so that we exit the
	//  application, rather than start the application's message pump.
	return FALSE;
}
